extract-strings: Deal with multiline strings
authorMatthias Clasen <mclasen@redhat.com>
Fri, 19 Apr 2013 19:22:03 +0000 (15:22 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 19 Apr 2013 19:22:03 +0000 (15:22 -0400)
When putting out N_(...) macros, we must split multiline strings,
otherwise xgettext complains.

gtk/extract-strings.c

index 613e73838cfab109af7f6c72ff14acc8dfb7dc85..0fec66f5bbb6930abdc5543e7c9200737ad506a9 100644 (file)
@@ -68,21 +68,34 @@ end_element_handler (GMarkupParseContext  *context,
                      GError              **error)
 {
   ParserData *data = user_data;
+  gchar **lines;
+  gint i;
 
   if (!data->translatable)
     return;
 
+  lines = g_strsplit (data->text->str, "\n", -1);
+
   if (data->comments)
     g_string_append_printf (data->output, "\n/* %s */\n",
                             data->comments);
 
   if (data->context)
-    g_string_append_printf (data->output, "C_(\"%s\", \"%s\")\n",
-                            data->context,
-                            data->text->str);
+    g_string_append_printf (data->output, "C_(\"%s\", ",
+                            data->context);
   else
-    g_string_append_printf (data->output, "N_(\"%s\")\n",
-                            data->text->str);
+    g_string_append (data->output, "N_(");
+
+  for (i = 0; lines[i]; i++)
+    g_string_append_printf (data->output, "%s\"%s%s\"%s",
+                            i > 0 ? "   " : "",
+                            lines[i],
+                            lines[i+1] ? "\\n" : "",
+                            lines[i+1] ? "\n" : "");
+
+  g_string_append (data->output, ");\n");
+
+  g_strfreev (lines);
 
   g_free (data->comments);
   g_free (data->context);